#ifndef __VBB_QUEUE_H__
#define __VBB_QUEUE_H__

#define MESSAGE_SIZE 1024
#define BUFFER_SIZE 8192
#define BUFFER_SIZE_MINUS_ONE 8191

typedef struct
{
    char buff[MESSAGE_SIZE];
    unsigned int length;
} VBB_Message;

void vbb_Message_Init(VBB_Message * Message);
void vbb_Message_AddByte(VBB_Message * Message, char Byte);

typedef struct
{
    char * buffer;
    unsigned short bufferSizeMinusOne;
    unsigned int head;
    unsigned int tail;
} VBB_DAT_Queue;

void vbb_DataQueue_Init(VBB_DAT_Queue * Queue, char * Buffer, unsigned int BufferSize);
void vbb_DataQueue_AddByte(VBB_DAT_Queue * Queue, char Byte);
char vbb_DataQueue_NextByte(VBB_DAT_Queue * Queue);

/*typedef struct
{
	VBB_DAT_Queue data;    
    uint32_t head;
    uint32_t tail;
    char msg[MESSAGE_SIZE]; //temporary buffer for use
} VBB_MSG_Queue;

void vbb_MsgQueue_Init(VBB_MSG_Queue * Queue);
void vbb_MsgQueue_AddMsg(VBB_MSG_Queue * Queue, const char * Data);
int vbb_MsgQueue_Size(VBB_MSG_Queue * Queue);
bool vbb_MsgQueue_NextMsg(VBB_MSG_Queue * Queue, char * Data);*/

#endif
